
let fs = require('fs');
let path = require('path');
let express = require('express');

let app = express();

app.use(express.static(path.join(__dirname , './public')));
app.use(express.json());

app.get('/' , (req,res) => {
    res.sendFile(path.join(__dirname , './public/index.html'));
});

// 获取所有书籍接口
app.get('/allBooks' , (req,res) => {
    res.sendFile(path.join(__dirname , './xiaoshuo.json'));
});

// 获取书籍详情接口
app.get('/book/index/:index' , (req,res) => {
    let {index} = req.params;   // 获取前端上传的下标
    // 获取所有的书籍
    let allBooks = JSON.parse(fs.readFileSync('./xiaoshuo.json'));
    // 返回数据给前端
    res.json(allBooks[index]);
});

// 收藏书籍接口
app.get('/likeBook/index/:index', (req,res) => {
    let {index} = req.params;
    // 获取所有的书
    let allBooks = JSON.parse(fs.readFileSync('./xiaoshuo.json'));
    // 获取收藏的数据
    let likeBooks = JSON.parse(fs.readFileSync('./shoucang.json'));
    // 把书名添加到收藏数据中
    likeBooks.push(allBooks[index].name);
    
    // allBooks[index]  要收藏的书 , 给这本书,设置一个属性,表示这个书,是否被收藏
    allBooks[index].isLike = true;

    // 把数据,写回收藏文件
    fs.writeFileSync('./shoucang.json' , JSON.stringify(likeBooks));
    fs.writeFileSync('./xiaoshuo.json' , JSON.stringify(allBooks));
    // 返回状态给前端
    res.json({
        code : 1,
        msg : '收藏成功',
    });
});

// 获取所有收藏的书籍
app.get('/shoucang' ,(req,res) => {
    res.sendFile(path.join(__dirname , './shoucang.json'));
});

// 取消收藏接口
app.get('/noLike/bookName/:bookName' , (req,res) => {
    let {bookName} = req.params;
    // 第一件事 , 把shoucang.json中的书名删除
    // 获取所有收藏的小说 -> 找下标 -> 删除 -> 写回文件
    let likeBooks = JSON.parse(fs.readFileSync('./shoucang.json'));
    let index = likeBooks.indexOf(bookName);
    likeBooks.splice(index,1);
    fs.writeFileSync('./shoucang.json' , JSON.stringify(likeBooks));
    // 第二件事 , 把所有小说中,对应书的isLike属性,修改成false
    // 获取所有的书 -> 在所有的书中 -> 找到对应的书 -> 修改对应的属性
    let allBooks = JSON.parse(fs.readFileSync('./xiaoshuo.json'));
    // 遍历
    allBooks.forEach( book => {
        if(book.name === bookName){
            book.isLike = false;
        }
    });
    // 把数据写回xiaoshuo.json中
    fs.writeFileSync('./xiaoshuo.json' , JSON.stringify(allBooks));
    // 返回数据给前端
    res.json({
        code : 3,
        msg :'取消收藏成功',
    });
});

app.listen(8080 , () => {
    console.log('服务器以启动 http://localhost:8080');
});